package com.py.my.tools;

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashSet;
import java.util.Set;

public class Main {

	public static void main(String[] args) throws Exception {
		File dir = new File("secure");
		File[] logs = dir.listFiles();
		Set<String> ips = new HashSet<>();
		for (File file : logs) {
			BufferedReader br = new BufferedReader(new FileReader(file));
			String line = null;
			while ((line = br.readLine()) != null) {
				if (line.contains("Accepted")) {
					String ip = line.substring(line.indexOf("Accepted password for root from ")
							+ "Accepted password for root from ".length(), line.indexOf(" port "));
					ips.add(ip);
				}
			}
		}
		String ipInfoUrl = "http://ip.taobao.com/service/getIpInfo.php";
		for (String ip : ips) {
			System.out.println(ip + "->" + getResult(ipInfoUrl, "ip="+ip, "utf-8"));
			Thread.sleep(1000);
		}
	}

	/**
	 * @param urlStr
	 *            请求的地址
	 * @param content
	 *            请求的参数 格式为：name=xxx&pwd=xxx
	 * @param encoding
	 *            服务器端请求编码。如GBK,UTF-8等
	 * @return
	 */
	private static String getResult(String urlStr, String content, String encoding) {
		URL url = null;
		HttpURLConnection connection = null;
		try {
			url = new URL(urlStr);
			connection = (HttpURLConnection) url.openConnection(); // 新建连接实例
			connection.setConnectTimeout(5000); // 设置连接超时时间，单位毫秒
			connection.setReadTimeout(5000); // 设置读取数据超时时间，单位毫秒
			connection.setDoOutput(true); // 是否打开输出流 true|false
			connection.setDoInput(true); // 是否打开输入流true|false
			connection.setRequestMethod("POST"); // 提交方法POST|GET
			connection.setUseCaches(false); // 是否缓存true|false
			connection.connect(); // 打开连接端口
			DataOutputStream out = new DataOutputStream(connection.getOutputStream());// 打开输出流往对端服务器写数据
			out.writeBytes(content); // 写数据,也就是提交你的表单 name=xxx&pwd=xxx
			out.flush(); // 刷新
			out.close(); // 关闭输出流
			BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), encoding));// 往对端写完数据对端服务器返回数据
																														// ,以BufferedReader流来读取
			StringBuffer buffer = new StringBuffer();
			String line = "";
			while ((line = reader.readLine()) != null) {
				buffer.append(line);
			}
			reader.close();
			return buffer.toString();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (connection != null) {
				connection.disconnect(); // 关闭连接
			}
		}
		return null;
	}

}
